package com.csdj.utils;

import org.springframework.util.DigestUtils;

import java.security.MessageDigest;
import java.util.Base64;


public class Md5Util {
	
	public static String  encode(String msg){
		try {
			MessageDigest messageDigest=MessageDigest.getInstance("md5");
			return Base64.getEncoder().encodeToString(messageDigest.digest(msg.getBytes())) ;
		}catch (Exception e){
			e.printStackTrace();
			return null;
		}
	}
	/**
	 * 执行密码加密
	 * @param password 原始密码
	 * @param salt 盐值
	 * @return 加密后的密文
	 */
	public static String getMd5Password(String password, String salt) {
		/*
		 * 加密规则：
		 * 1、无视原始密码的强度
		 * 2、使用UUID作为盐值，在原始密码的左右两侧拼接
		 * 3、循环加密3次
		 */
		for (int i = 0; i < 3; i++) {
			password = DigestUtils.md5DigestAsHex((salt + password + salt).getBytes()).toUpperCase();
		}
		return password;
	}

}
